[Unit]
Description=FastAPI Application
After=network.target

[Service]
User={{ app_user }}
Group={{ app_user }}
WorkingDirectory={{ app_dir }}
Environment=PATH={{ venv_dir }}/bin
ExecStart={{ venv_dir }}/bin/uvicorn app:app --host 0.0.0.0 --port {{ app_port }}
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

# 配置系统服务(systemd服务)有以下几个原因：
## 1. 持久化运行
## 后台持续运行: FastAPI应用需要持续运行以响应HTTP请求, 系统服务可以确保应用在后台持续运行, 即使用户断开SSH连接也不会停止
## 进程管理: 系统服务提供了标准的进程管理机制, 可以方便地启动、停止、重启应用
## 2. 系统集成
## 开机自启: 通过 enabled: yes 配置, 系统服务可以在服务器重启后自动启动应用, 确保服务的高可用性
## 系统监控: 系统服务可以与操作系统的监控工具集成, 便于监控应用状态
## 3. 稳定性保障
## 自动重启: 当应用意外崩溃时, 系统服务会自动重启应用
## 重启间隔: 设置3秒的重启间隔, 避免应用频繁崩溃时系统资源被耗尽
